home *** CD-ROM | disk | FTP | other *** search
- /*==============================================================================
- Project: POV
-
- File: Animate.h
-
- Description:
- Routines to handle the clock animation variable prompting for POV-Ray.
-
- ------------------------------------------------------------------------------
- Author:
- Eduard [esp] Schwan
- ------------------------------------------------------------------------------
- from Persistence of Vision(tm) Ray Tracer
- Copyright 1996 Persistence of Vision Team
- ------------------------------------------------------------------------------
- NOTICE: This source code file is provided so that users may experiment
- with enhancements to POV-Ray and to port the software to platforms other
- than those supported by the POV-Ray Team. There are strict rules under
- which you are permitted to use this file. The rules are in the file
- named POVLEGAL.DOC which should be distributed with this file. If
- POVLEGAL.DOC is not available or for more info please contact the POV-Ray
- Team Coordinator by leaving a message in CompuServe's Graphics Developer's
- Forum. The latest version of POV-Ray may be found there as well.
-
- This program is based on the popular DKB raytracer version 2.12.
- DKBTrace was originally written by David K. Buck.
- DKBTrace Ver 2.0-2.12 were written by David K. Buck & Aaron A. Collins.
- ------------------------------------------------------------------------------
- Change History:
- 930226 [esp] Created
- 930605 [esp] Changed initial frame # from zero to one
- 930728 [esp] Added frameValS/frameValE, removed curr fields
- 930816 [esp] Added pAnimPtr to SetCurrFrameVal
- 931001 [esp] version 2.0 finished (Released on 10/4/93)
- ==============================================================================*/
-
- #if !defined(ANIMATE_H)
- #define ANIMATE_H
-
- #include "config.h"
- #include <types.h>
-
- // This resource/struct will be saved to disk, and should match
- // its 68K equivalent...
- #if GENERATINGPOWERPC
- #pragma options align=mac68k
- #endif
-
- // Note that the working variables (current frame/clock) are not stored
- // in this structure (since they don't need to be saved), and are declared
- // as static globals in animate.c instead, with accessor functions.
- typedef struct
- {
- short frameVal0; /* Initial animation frame, always implied one */
- short frameValS; /* Current Frame to start session at */
- short frameValE; /* Current Frame to end session at */
- short frameValN; /* Final animation frame */
- float clockVal0; /* initial "clock" value (1st frame) */
- float clockValN; /* final "clock" value (last frame) */
- } AnimRec_t, *AnimPtr_t, **AnimHdl_t;
-
- #if GENERATINGPOWERPC
- #pragma options align=reset
- #endif
-
-
- // Set local current frame value (and calculate current clock value too)
- void SetCurrFrameVal(AnimPtr_t pAnimPtr, short newFrameVal);
-
- // Return local current frame value
- short GetCurrFrameVal(void);
-
- // Return local current clock value
- float GetCurrClockVal(void);
-
- float CalcClockVal(AnimPtr_t pAnimPtr, short currFrameVal);
-
- // Increment Frame counter if not already finished, and recalculate
- // new clock value. Return false if past last frame
- Boolean IncToNextFrame(AnimPtr_t pAnimPtr);
-
-
- #endif // ANIMATE_H
-